1. Field of the Invention
The present invention relates generally to direct access storage devices, and more particularly to a method and apparatus for detecting changes in the rotational velocity of a rotating data storage medium and compensating for such changes.
2. Description of the Related Art
Direct Access Storage Devices (DASDs) which use a rotating disk having a magnetically sensitive coating are well known. The magnetic coating can be magnetically biased to indicate at least two distinct logical states during a write procedure. These distinct logical states can then be read at a later time during a read procedure in order to recover digital information that was stored during the write operation.
FIG. 1 is an illustration of the manner in which data is organized on a medium in accordance with one particular type of direct access storage device (DASD), commonly referred to as an embedded servo disk drive. In accordance with the DASD shown in FIG. 1, data is organized in data cells 101 stored within tracks 102 on a storage medium 103. The data is read and written by a read/write head which is suspended over the media that rotates about a central axis through the center 104 of the medium 103 and perpendicular to the plane of the medium 103. Each track 102 comprises of all the information stored on the medium 103 at a particular radial distance from the center 104 of the medium 103. Tracks 102 can be identified either by the radial distance of the track from the center of the medium, or by a track number which may be assigned sequentially to each track 102 starting at the track furthest from the center of the medium according to methods known in the art of disk drive design.
FIG. 2 illustrates how data is typically organized within a servo sector 107 in the case of a DASD in which data is encoded in a format suitable for detection using well-known partial response maximum-likelihood (PRML) data channels. Each servo sector 107 includes, for example, an Automatic Gain Control (AGC) field 203, a Sector Identification (SID) field 205, a Gray code (GC) field, or track ID 207, and a Position Error Signal (PES) field 209. A pattern provided in the AGC field 203 allows the gain and frequency of the data channel to be adjusted to compensate for differences in the amplitude and frequency of the data and servo information detected by the read/write head and to synchronize the servo/data detection channel. The information provided in the SID field 205 indicates the circumferential position of the particular sector over which the read/write head is suspended. That is, the SID field 205 encodes an index position with one encoding and a plurality of other non-index positions with other encodings. The circumferential position is determined by counting the number of non-index positions starting from the index SID. The information provided in the GC field 207 encodes a track identifier for a track over which the read/write head is suspended, and in some multiple disk drive implementations, a head identifier. The information provided in the PES field 209 is used to determine an analog error between the desired track center and the actual read/write head position. Accordingly, the information provided in the PES field 209 is used by the servo portion of the channel to keep the head centered on the track. U.S. Pat. No. 5,285,327 provides information related to a servo sector architecture and is incorporated herein by reference. In some DASDs, each time the read/write head passes over the servo sector 107, as indicated by detection of a SID pattern, a SID pulse is generated. The SID pulse is used to synchronize a System Clock that runs at a high frequency with respect to the rate at which SID pulses occur. The number of cycles of the System Clock that occur between SID pulses is counted by a System Clock counter. At predetermined counts of the System Clock counter, a sector pulse is generated. Each sector pulse indicates where a data cell should begin. The sector pulse is used as a timing indicator from which write gate and read gate timings are referenced. The write gate is used to enable the read/write head to write data to the medium. Similarly, the read gate is used to enable the read/write head to read data from the medium. There may be one or more sector pulses between servo sectors. The locations of each of the data regions following each servo sector will generally differ. Hence, the SID count is used to control a look-up of data cell locations from a data cell location memory.
The circumferential position of the read/write head with respect to the medium is synchronized at the beginning of each sector by the detection of the SID. Accordingly, the locations of the beginning of the data cells that follow are determined to a relatively high degree of accuracy. However, if one SID is not detected due, for example, to a read error, the position of the read/write head is not synchronized to the medium at the start of the next sector and changes in the rotational velocity are not taken into account in determining the beginning of the data cells of that next sector. Consequently, the risk arises that the write gate may be activated at the wrong time, causing data or servo information to be unintentionally overwritten.
To prevent such unintentional overwriting, a pad may be provided at the beginning and end of each data cell. The pad compensates for the uncertainty as to the relationship between the time the sector pulse is generated and the time the read/write head is actually located over the beginning of a data cell. Specifically, variations in the rotational velocity of the medium can cause a sector pulse to occur either early or late with respect to the beginning of an associated data cell. Therefore, if the sector pulse occurs early (i.e., before the beginning of the data cell) and each data cell ends just before the next data cell begins, data which is intended to be written at the beginning of the data cell will unintentionally overwrite the information recorded at the end of the previous data cell.
FIG. 3 is an illustration of the organization of a data cell 101 as commonly provided in DASDs using PRML data channels. Pads 301, 303 are provided at the beginning and end of each data cell 101. In addition, the AGC field 305 is made long enough to ensure that if the sector pulse occurs late with respect to the beginning of a data cell 307, the read head will still be able to read enough of the AGC pattern from the AGC field 305 to allow the AGC circuit 28 to properly adjust the gain and frequency of the channel. A synchronization pattern 309 at the end of the AGC field 305 provides framing information about the upcoming data to the channel. It also indicates that the read/write head is at the end of the AGC field 305 and that a data field 311 is about to begin. Since the read/write head requires a period of time after being provided a write signal before valid data can be written with certainty, a 4 byte field 302 in which the magnetic state of the flux on the medium is uncertain precedes the AGC field 305. In the data cell 101 shown in FIG. 3, the AGC field 305 is 30 bytes long, and has a synchronization pattern 309 of 3 bytes appended at the end. Assuming that the AGC circuit 28 that reads and writes to this data cell requires a minimum of 10bytes of AGC information in order to properly set the gain of the channel, the sector pulse may be as much as 5 bytes early or late without causing a read or write error. However, there are two worst case situations which must be considered.
The first situation is illustrated in FIG. 4, in which data was written to a first data cell 101c in response to a sector pulse (not shown) which occurred 5 bytes after the ideal start of the data cell. Thus, the pad 301 and each subsequent field of the data cell 101c was written 5 bytes late (i.e., is shifted 5 bytes to the right with respect to the ideal start of the data cell as shown in FIG. 4). It should be understood that because each field of the data cell 101c is written during every write operation, the entire data cell 101c is shifted when a write operation starts late. This shift must be taken into account to ensure that the 4 byte field 302 in which the magnetic state of the flux on the medium is uncertain is not read and mistaken for a valid AGC pattern in a subsequent attempt to read the data cell 101c. Such a mistake could result in the gain or timing synchronization being improperly set. Improperly setting the gain or timing synchronization can cause errors in the decoding of the data in a PRML decoding channel. Such a shift is accounted for by ensuring that the read gate is generated no less than 19 bytes after the sector pulse. By waiting at least 19 bytes after the sector pulse 401 before activating the read gate, the read/write head will always be over a valid AGC pattern, even in the worst case situation shown in FIG. 4.
The second situation is illustrated in FIG. 5, in which data was written to a first data cell 101d in response to a sector pulse (not shown) which occurred 5 bytes before the ideal start of the data cell. Thus, the pad 301d and each subsequent field of the data cell 101 c was written 5 bytes early (i.e., is shifted 5 bytes to the left with respect to the ideal start of the data cell as shown in FIG. 5). If the sector pulse 501 associated with a subsequent read operation occurs 5 bytes late (i.e., 10 bytes after the beginning of the pad 301d), the read gate will be generated 29 bytes after the beginning of the pad 301d. Therefore, the read gate will be generated 20 bytes after the beginning of the AGC field 305. Accordingly, in order to ensure that at least 10 bytes of the AGC field 305 will be read after the read gate is generated, the AGC field 305 must be at least 30 bytes long.
Inefficiencies in the manner in which the data must be formatted on the medium can account for a loss to the user of more than 25% of the otherwise useable data storage area. Due to the relatively large capacity of current data storage devices, even small increases of the efficiency can make relatively large blocks of additional capacity available to the user. In the highly competitive market for data storage devices, such improvements in the efficiency of a data storage device can result in improved sales and greater market share.
One source of inefficiency in the storage of information within a track of a DASD, is the use of pads between each data cell. It should be clear that if the start of a data cell can be determined more accurately, the pads can be made smaller. Furthermore, since the location of each data cell is determined with respect to the location of the SID, the more accurately the position of each SID can be estimated upon a failure to detect the actual SID, the more accurately the start of each data cell can be determined, and consequently, the smaller the pad in each data cell can be made. Furthermore, as can be seen from the above description of the timing of the read and write gates, the more accurately the location of the servo sectors can be identified, the shorter the AGC field 305 can be made.
Accordingly, it is an object of the present invention to provide a system and method for more accurately determining the beginning of a data cell in the presence of media velocity variations. Another object of the present invention is to provide a system and method for improving the efficiency with which data can be stored on a medium. Still another object of the present invention is to provide a system and method for reducing the size of the pads and AGC fields of data cells stored on a medium.